// course/consultOrder/consultOrder.js
Page({
  data: {
  consultWayOptions: ['1', '2', '3'],
  consultWayIndex: 0,
  selectedDateTime: '', // 存储选中的时间（格式：YYYY-MM-DDTHH:MM）
  bookingDes: '', // 情况说明
  minDate: '', // 最小可选时间（当前时间）
  maxDate: '', // 最大可选时间（30天后）
  isSubmitting: false,
  errorMsg: '',
},

  onLoad() {
  // 初始化时间范围（解决时间无法选择的核心：设置合理的可选范围）
  const now = new Date();
  // 最小时间：当前时间（格式化为 YYYY-MM-DDTHH:MM）
  const minDate = this.formatDate(now);
  // 最大时间：30天后
  const maxDate = this.formatDate(new Date(now.getTime() + 30 * 24 * 60 * 60 * 1000));

  this.setData({
    minDate,
    maxDate,
    selectedDateTime: minDate // 初始值设为当前时间（可选）
  });
},

  // 格式化日期为 picker 支持的格式（YYYY-MM-DDTHH:MM）
  formatDate(date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');
    return `${year}-${month}-${day}T${hour}:${minute}`;
  },

  // 格式化显示给用户的时间（去掉 T，转为 YYYY-MM-DD HH:MM）
  formatDateTime(dateStr) {
    return dateStr.replace('T', ' ');
  },

  // 处理咨询方式选择
  bindConsultWayChange(e) {
    this.setData({
      consultWayIndex: e.detail.value
    });
  },

  // 处理日期时间选择
  bindDateTimeChange(e) {
    this.setData({
      selectedDateTime: e.detail.value
    });
  },

  // 处理情况说明输入
  bindDescInput(e) {
    this.setData({
      bookingDes: e.detail.value
    });
  },

  // 提交预约
bookNow() {
  const { selectedDateTime, bookingDes, consultWayIndex, isSubmitting } = this.data;

  // 防止重复提交
  if (isSubmitting) return;

  // 验证表单
  if (!selectedDateTime) {
    this.setData({ errorMsg: '请选择预约时间' });
    return;
  }
  if (!bookingDes.trim()) {
    this.setData({ errorMsg: '请填写情况说明' });
    return;
  }

  // 准备提交数据（转换时间格式为后端需要的 "YYYY-MM-DD HH:MM:SS"）
  const bookingTime = this.formatDateTime(selectedDateTime) + ':00';
  const consultWay = this.data.consultWayOptions[consultWayIndex];

  this.setData({ isSubmitting: true, errorMsg: '' });
  wx.showLoading({ title: '提交中...' });

  // 调用后端接口
  wx.request({
    url: 'http://localhost:8080/booking',
    method: 'POST',
    data: {
      bookingTime, // 后端需要的格式："2024-11-08 10:50:21"
      bookingDes,
      // userId 和 consultantId 可选，根据实际情况添加
      // userId: 2, 
      // consultantId: 3
    },
    header: {
      'Content-Type': 'application/json'
    },
    success: (res) => {
      if (res.statusCode === 200 && res.data.code === 200) {
        wx.showToast({
          title: '预约成功',
          icon: 'success',
          duration: 2000,
          success: () => {
            setTimeout(() => wx.navigateBack(), 2000); // 成功后返回上一页
          }
        });
      } else {
        this.setData({ errorMsg: res.data.msg || '预约失败，请重试' });
      }
    },
    fail: () => {
      this.setData({ errorMsg: '网络错误，无法连接服务器' });
    },
    complete: () => {
      this.setData({ isSubmitting: false });
      wx.hideLoading();
    }
  });
}
});